package cz.semjob.linguistic.reader.attribute.czech;

import org.springframework.stereotype.Component;

import cz.semjob.linguistic.reader.attribute.ARelationshipAttribute;

@Component
public class CzechRelationshipAttribute extends ARelationshipAttribute {

	private final static  String PREDICAT = "PREDICAT";
	private final static  String SUBJECT = "SUBJECT";
	private final static  String OBJECT = "OBJECT";
	private final static  String ADVERBIALE = "ADVERBIALE";
	private final static  String COMPLEMENT = "COMPLEMENT";
	private final static  String COMPLEMENT_VERBIAL = "COMPLEMENT_VERBIAL";
	private final static  String ATTRIBUTE = "ATTRIBUTE";
	private final static  String PREDICATE_NOMINAL = "PREDICATE_NOMINAL";
	private final static  String VERB_AUXILIARY = "VERB_AUXILIARY";
	private final static  String COORDINATE = "COORDINATE";
	private final static  String APPOSITION = "APPOSITION";
	private final static  String TANTUM_REFLEXIVE = "TANTUM_REFLEXIVE";
	private final static  String PASIVUM_REFLEXIVE = "PASIVUM_REFLEXIVE";
	private final static  String PREPOSITION = "PREPOSITION";
	private final static  String CONJUNCTION = "CONJUNCTION";
	private final static  String REDUNDANT_EMOTIVE = "REDUNDANT_EMOTIVE";
	private final static  String VERB_EMPHATIZE = "VERB_EMPHATIZE";
	private final static  String COMMA = "COMMA";
	private final static  String GRAPHIC_SYMNBOL = "GRAPHIC_SYMNBOL";
	private final static  String OTHER_ADVERB_PARTICLES = "OTHER_ADVERB_PARTICLES";
	private final static  String TREE_ROOT = "TREE_ROOT";
	private final static  String ENDING_INTERPUNCTION = "ENDING_INTERPUNCTION";
	private final static  String EX_DEPENDENT = "EX_DEPENDENT";
	private final static  String ATTRIBUTE_SUBSTANTIVE = "ATTRIBUTE_SUBSTANTIVE";
	private final static  String ATTRIBUTE_ADVERBUM = "ATTRIBUTE_ADVERBUM";
	private final static  String ADVERBUM_ATTRIBUTE = "ADVERBUM_ATTRIBUTE";
	private final static  String ATTRIBUTE_OBJECT = "ATTRIBUTE_OBJECT";
	private final static  String OBJECT_ATTRIBUTE = "OBJECT_ATTRIBUTE";
	
	private final static String[] values = new String[] { PREDICAT, SUBJECT,
			OBJECT, ADVERBIALE, COMPLEMENT, COMPLEMENT_VERBIAL,
			ATTRIBUTE, PREDICATE_NOMINAL, VERB_AUXILIARY, COORDINATE,
			APPOSITION, TANTUM_REFLEXIVE, PASIVUM_REFLEXIVE,
			PREPOSITION, CONJUNCTION, REDUNDANT_EMOTIVE,
			VERB_EMPHATIZE, COMMA, GRAPHIC_SYMNBOL,
			OTHER_ADVERB_PARTICLES, TREE_ROOT, ENDING_INTERPUNCTION,
			EX_DEPENDENT, ATTRIBUTE_SUBSTANTIVE, ATTRIBUTE_ADVERBUM,
			ADVERBUM_ATTRIBUTE, ATTRIBUTE_OBJECT, OBJECT_ATTRIBUTE };

	public String[] getValues() {
		return values;
	}

	/**
	 * Parse input value ex. 'Obj' and return its string representation ex.
	 * OBJECT
	 * 
	 * @param input
	 * @return
	 */
	public String getValue(String input) {
		if (input.equals("Pred")) {
			return PREDICAT;
		} else if (input.equals("Sb")) {
			return SUBJECT;
		} else if (input.equals("Obj")) {
			return OBJECT;
		} else if (input.equals("Adv")) {
			return ADVERBIALE;
		} else if (input.equals("Atv")) {
			return COMPLEMENT;
		} else if (input.equals("AtvV")) {
			return COMPLEMENT_VERBIAL;
		} else if (input.equals("Atr")) {
			return ATTRIBUTE;
		} else if (input.equals("Pnom")) {
			return PREDICATE_NOMINAL;
		} else if (input.equals("AuxV")) {
			return VERB_AUXILIARY;
		} else if (input.equals("Coord")) {
			return COORDINATE;
		} else if (input.equals("Apos")) {
			return APPOSITION;
		} else if (input.equals("AuxT")) {
			return TANTUM_REFLEXIVE;
		} else if (input.equals("AuxR")) {
			return PASIVUM_REFLEXIVE;
		} else if (input.equals("AuxP")) {
			return PREPOSITION;
		} else if (input.equals("AuxC")) {
			return CONJUNCTION;
		} else if (input.equals("AuxO")) {
			return REDUNDANT_EMOTIVE;
		} else if (input.equals("AuxZ")) {
			return VERB_EMPHATIZE;
		} else if (input.equals("AuxX")) {
			return COMMA;
		} else if (input.equals("AuxG")) {
			return GRAPHIC_SYMNBOL;
		} else if (input.equals("AuxY")) {
			return OTHER_ADVERB_PARTICLES;
		} else if (input.equals("AuxS")) {
			return TREE_ROOT;
		} else if (input.equals("AuxK")) {
			return ENDING_INTERPUNCTION;
		} else if (input.equals("ExD")) {
			return EX_DEPENDENT;
		} else if (input.equals("AtrAtr")) {
			return ATTRIBUTE_SUBSTANTIVE;
		} else if (input.equals("AtrAdv")) {
			return ATTRIBUTE_ADVERBUM;
		} else if (input.equals("AdvAtr")) {
			return ADVERBUM_ATTRIBUTE;
		} else if (input.equals("AtrObj")) {
			return ATTRIBUTE_OBJECT;
		} else if (input.equals("ObjAtr")) {
			return OBJECT_ATTRIBUTE;
		} else {
			return null;
		}
		

	}

}
